package com.macro.mall.model;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.macro.mall.converter.LocalDateTimeConverter;
import com.macro.mall.converter.TourismPConverter;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;

@ExcelIgnoreUnannotated
public class BmsNarratorThemeApplicant implements Serializable {
    @ApiModelProperty(value = "主键")
    @ExcelProperty(value = "编号", index = 0)
    private Long id;

    @ApiModelProperty(value = "讲解项目-主题id")
    private Long narratorThemeId;

    @ApiModelProperty(value = "用户id")
    private Long userId;

    @ApiModelProperty(value = "用户名称")
    @ExcelProperty(value = "用户昵称", index = 1)
    private String userName;

    @ApiModelProperty(value = "用户电话")
    @ExcelProperty(value = "用户电话", index = 2)
    private String userPhone;

    @ApiModelProperty(value = "用户证件类型（字典表维护）")
    private Long userIdType;

    @ApiModelProperty(value = "用户证件号码")
    private String userIdCard;

    @ApiModelProperty(value = "预约时间")
    @ExcelProperty(value = "预约时间", index = 3, converter = LocalDateTimeConverter.class)
    private LocalDateTime applicationTime;

    @ApiModelProperty(value = "二维码")
    private String qrCode;

    @ApiModelProperty(value = "预约人数")
    @ExcelProperty(value = "预约人数", index = 4)
    private Integer peopleNumber;

    @ApiModelProperty(value = "状态：0-已预约；1-已乘车；2-已失效；3-已取消；")
    @ExcelProperty(value = "状态", index = 5 ,converter = TourismPConverter.class )
    private String status;

    @ApiModelProperty(value = "创建者")
    private Long createUser;

    @ApiModelProperty(value = "创建时间")
    private Date createTime;

    @ApiModelProperty(value = "修改者")
    private Long updateUser;

    @ApiModelProperty(value = "修改时间")
    private Date updateTime;

    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "删除标识：0-未删除；1-已删除；")
    private Byte isDelete;

    private static final long serialVersionUID = 1L;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getNarratorThemeId() {
        return narratorThemeId;
    }

    public void setNarratorThemeId(Long narratorThemeId) {
        this.narratorThemeId = narratorThemeId;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getUserPhone() {
        return userPhone;
    }

    public void setUserPhone(String userPhone) {
        this.userPhone = userPhone;
    }

    public Long getUserIdType() {
        return userIdType;
    }

    public void setUserIdType(Long userIdType) {
        this.userIdType = userIdType;
    }

    public String getUserIdCard() {
        return userIdCard;
    }

    public void setUserIdCard(String userIdCard) {
        this.userIdCard = userIdCard;
    }

    public LocalDateTime getApplicationTime() {
        return applicationTime;
    }

    public void setApplicationTime(LocalDateTime applicationTime) {
        this.applicationTime = applicationTime;
    }

    public String getQrCode() {
        return qrCode;
    }

    public void setQrCode(String qrCode) {
        this.qrCode = qrCode;
    }

    public Integer getPeopleNumber() {
        return peopleNumber;
    }

    public void setPeopleNumber(Integer peopleNumber) {
        this.peopleNumber = peopleNumber;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public Long getCreateUser() {
        return createUser;
    }

    public void setCreateUser(Long createUser) {
        this.createUser = createUser;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Long getUpdateUser() {
        return updateUser;
    }

    public void setUpdateUser(Long updateUser) {
        this.updateUser = updateUser;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public Byte getIsDelete() {
        return isDelete;
    }

    public void setIsDelete(Byte isDelete) {
        this.isDelete = isDelete;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", narratorThemeId=").append(narratorThemeId);
        sb.append(", userId=").append(userId);
        sb.append(", userName=").append(userName);
        sb.append(", userPhone=").append(userPhone);
        sb.append(", userIdType=").append(userIdType);
        sb.append(", userIdCard=").append(userIdCard);
        sb.append(", applicationTime=").append(applicationTime);
        sb.append(", qrCode=").append(qrCode);
        sb.append(", peopleNumber=").append(peopleNumber);
        sb.append(", status=").append(status);
        sb.append(", createUser=").append(createUser);
        sb.append(", createTime=").append(createTime);
        sb.append(", updateUser=").append(updateUser);
        sb.append(", updateTime=").append(updateTime);
        sb.append(", remark=").append(remark);
        sb.append(", isDelete=").append(isDelete);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}
